﻿<?xml version="1.0" encoding="utf-8"?>

<xsd:schema
    targetNamespace="http://metalx.org/i386/Functions/CdDrive"
    elementFormDefault="qualified"
    xmlns="http://metalx.org/i386/Functions/CdDrive"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

	<xsd:element name="GetBlockCount">
		<xsd:annotation>
			<xsd:documentation>
				Gets the block size of a cd-rom drive.

				Input:
				DX=Port
				
				Output:
				AX=BlockCount

				Modifies: CX DX SI DI
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetModelNumber">
		<xsd:annotation>
			<xsd:documentation>
				Gets the model number of a cd-rom drive.

				Input:
				DX=Port
				AL=Channel

				Output:
				DI=String

				Modifies: AX CX DX SI DI
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="GetSerialNumber">
		<xsd:annotation>
			<xsd:documentation>
				Gets the serial number of a cd-rom drive.

				Input:
				DX=Port
				AL=Channel

				Output:
				DI=String

				Modifies: AX CX DX SI DI
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="ReadBlock">
		<xsd:annotation>
			<xsd:documentation>
				Reads a single block from a cd-rom drive.

				Input:
				DI=Address
				AX=Block
				DX=Port
				BL=Channel

				Modifies: DI
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="ReadBlocks">
		<xsd:annotation>
			<xsd:documentation>
				Reads multiple blocks from a cd-rom drive.

				Input:
				DI=Address
				AX=FirstBlock
				CX=BlockCount
				DX=Port
				BL=Channel
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="WriteBlock">
		<xsd:annotation>
			<xsd:documentation>
				Writes a single block to a cd-rom drive.

				Input:
				SI=Address
				AX=Block
				DX=Port
				BL=Channel

				Modifies: SI
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

	<xsd:element name="WriteBlocks">
		<xsd:annotation>
			<xsd:documentation>
				Writes multiple blocks to a cd-rom drive.

				Input:
				SI=Address
				AX=FirstBlock
				CX=BlockCount
				DX=Port
				BL=Channel

				Modifies: SI
			</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>

</xsd:schema>
